```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Solr 搜索引擎技术详解</title>
    <link href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            line-height: 1.6;
        }
        h1, h2, h3, h4 {
            font-family: 'Noto Serif SC', serif;
            font-weight: 600;
        }
        .hero {
            background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
        }
        .code-block {
            background: #282c34;
            border-left: 4px solid #5bc0de;
        }
        .note {
            border-left: 4px solid #f0ad4e;
            background: #fff8e6;
        }
        .warning {
            border-left: 4px solid #d9534f;
            background: #fef0ef;
        }
        .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0,0,0,0.1);
        }
        .diagram-container {
            background: rgba(255,255,255,0.9);
            border-radius: 8px;
            padding: 20px;
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero text-white py-20 px-4 md:px-0">
        <div class="container mx-auto max-w-5xl text-center">
            <h1 class="text-4xl md:text-5xl font-bold mb-6">Solr 搜索引擎技术详解</h1>
            <p class="text-xl md:text-2xl mb-8 opacity-90">高性能、可扩展的企业级搜索解决方案</p>
            <div class="flex justify-center space-x-4">
                <a href="#intro" class="px-6 py-3 bg-white text-blue-800 font-semibold rounded-lg hover:bg-blue-100 transition duration-300">
                    <i class="fas fa-book-open mr-2"></i>开始阅读
                </a>
                <a href="#docker-install" class="px-6 py-3 bg-transparent border-2 border-white text-white font-semibold rounded-lg hover:bg-white hover:text-blue-800 transition duration-300">
                    <i class="fas fa-docker mr-2"></i>Docker安装
                </a>
            </div>
        </div>
    </section>

    <!-- Main Content -->
    <div class="container mx-auto max-w-5xl py-12 px-4 md:px-0">
        <!-- Introduction Section -->
        <section id="intro" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-blue-600 w-12 h-12 rounded-full flex items-center justify-center text-white mr-4">
                    <i class="fas fa-search text-xl"></i>
                </div>
                <h2 class="text-3xl font-bold text-gray-800">1. Solr 简介</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-6 mb-8">
                <p class="text-lg text-gray-700 mb-6">Solr 是一个独立的企业级搜索应用服务器，它对外提供类似于 Web-service 的 API 接口。用户可以通过 http 请求，向搜索引擎服务器提交一定格式的 XML 文件，生成索引；也可以通过 Http Get 操作提出查找请求，并得到 XML 格式的返回结果。</p>
                <p class="text-lg text-gray-700">Solr 是 Apache 软件基金会下的子项目之一。</p>
            </div>
            
            <div class="flex justify-center my-8">
                <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692181298374-99795ef4-7e8b-4629-9ea9-884f54d8d8cc.png" alt="Solr Logo" class="rounded-lg shadow-md max-w-full h-auto">
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mt-12">
                <div class="bg-white rounded-xl shadow-md p-6 hover:shadow-lg transition duration-300">
                    <div class="flex items-center mb-4">
                        <div class="bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center text-blue-600 mr-3">
                            <i class="fas fa-bolt"></i>
                        </div>
                        <h3 class="text-xl font-semibold">高性能搜索</h3>
                    </div>
                    <p class="text-gray-600">Solr 基于 Lucene 构建，提供快速、高效的全文检索能力，支持复杂的查询语法和多种查询方式。</p>
                </div>
                
                <div class="bg-white rounded-xl shadow-md p-6 hover:shadow-lg transition duration-300">
                    <div class="flex items-center mb-4">
                        <div class="bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center text-blue-600 mr-3">
                            <i class="fas fa-expand-arrows-alt"></i>
                        </div>
                        <h3 class="text-xl font-semibold">高度可扩展</h3>
                    </div>
                    <p class="text-gray-600">Solr 支持分布式搜索和索引复制，可以轻松扩展以满足高流量、大数据量的搜索需求。</p>
                </div>
            </div>
        </section>

        <!-- Working Principle Section -->
        <section id="principle" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-blue-600 w-12 h-12 rounded-full flex items-center justify-center text-white mr-4">
                    <i class="fas fa-cogs text-xl"></i>
                </div>
                <h2 class="text-3xl font-bold text-gray-800">2. 工作原理</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-6 mb-8">
                <p class="text-lg text-gray-700 mb-4">Solr 是基于 Lucene 开发的企业级搜索引擎技术，而 Lucene 的核心原理是<span class="text-red-600 font-semibold">倒排索引</span>。</p>
                
                <div class="my-6 p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
                    <h3 class="text-xl font-semibold text-blue-800 mb-2">什么是倒排索引？</h3>
                    <p class="text-gray-700">倒排索引是一种将文档内容中的词映射到包含该词的文档的数据结构，与传统的"文档→词"的正排索引相反。</p>
                </div>
                
                <h3 class="text-2xl font-semibold mt-8 mb-4 text-gray-800">倒排索引示例</h3>
                
                <div class="grid md:grid-cols-2 gap-8 mb-8">
                    <div>
                        <h4 class="text-lg font-semibold mb-3 text-gray-700">原始文档</h4>
                        <div class="bg-gray-100 p-4 rounded-lg">
                            <p class="font-medium">文章1:</p>
                            <p class="mb-3">老超在卡子门工作，我也是。</p>
                            <p class="font-medium">文章2:</p>
                            <p>小超在鼓楼工作。</p>
                        </div>
                    </div>
                    <div>
                        <h4 class="text-lg font-semibold mb-3 text-gray-700">分词结果</h4>
                        <div class="bg-gray-100 p-4 rounded-lg">
                            <p class="font-medium">文章1:</p>
                            <p class="mb-3">老超 | 卡子门 | 工作 | 我 | 也是</p>
                            <p class="font-medium">文章2:</p>
                            <p>小超 | 鼓楼 | 工作</p>
                        </div>
                    </div>
                </div>
                
                <div class="mb-8">
                    <h4 class="text-lg font-semibold mb-3 text-gray-700">倒排索引结构</h4>
                    <div class="overflow-x-auto">
                        <table class="min-w-full bg-white border border-gray-200">
                            <thead class="bg-gray-100">
                                <tr>
                                    <th class="py-2 px-4 border-b text-left">关键词</th>
                                    <th class="py-2 px-4 border-b text-left">文档ID</th>
                                    <th class="py-2 px-4 border-b text-left">出现频率</th>
                                    <th class="py-2 px-4 border-b text-left">位置信息</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td class="py-2 px-4 border-b">老超</td>
                                    <td class="py-2 px-4 border-b">1</td>
                                    <td class="py-2 px-4 border-b">1</td>
                                    <td class="py-2 px-4 border-b">0</td>
                                </tr>
                                <tr class="bg-gray-50">
                                    <td class="py-2 px-4 border-b">小超</td>
                                    <td class="py-2 px-4 border-b">2</td>
                                    <td class="py-2 px-4 border-b">1</td>
                                    <td class="py-2 px-4 border-b">0</td>
                                </tr>
                                <tr>
                                    <td class="py-2 px-4 border-b">工作</td>
                                    <td class="py-2 px-4 border-b">1,2</td>
                                    <td class="py-2 px-4 border-b">1,1</td>
                                    <td class="py-2 px-4 border-b">2,2</td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
                
                <div class="grid md:grid-cols-2 gap-8 mt-8">
                    <div>
                        <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692181299540-2752b275-5624-407a-9ec5-169037cd8fcc.png" alt="倒排索引详细结构" class="rounded-lg shadow-md w-full">
                    </div>
                    <div>
                        <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692181299795-feccaedd-3184-4a40-b28c-ec8deaafe3bd.png" alt="倒排索引示例" class="rounded-lg shadow-md w-full">
                    </div>
                </div>
            </div>
            
            <div class="mt-12">
                <div class="diagram-container shadow-lg p-4">
                    <div class="mermaid">
                        graph TD
                            A[文档集合] --> B[分词处理]
                            B --> C[构建倒排索引]
                            C --> D[关键词->文档映射]
                            D --> E[存储词频和位置]
                            E --> F[搜索查询处理]
                            F --> G[结果排序和返回]
                    </div>
                </div>
            </div>
        </section>

        <!-- Docker Installation Section -->
        <section id="docker-install" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-blue-600 w-12 h-12 rounded-full flex items-center justify-center text-white mr-4">
                    <i class="fab fa-docker text-xl"></i>
                </div>
                <h2 class="text-3xl font-bold text-gray-800">3. Docker 安装 Solr</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-6">
                <h3 class="text-2xl font-semibold mb-6 text-gray-800">3.1 基础安装步骤</h3>
                
                <div class="space-y-6">
                    <div class="code-block p-4 rounded-lg text-gray-100">
                        <div class="flex items-center mb-2">
                            <span class="inline-block w-3 h-3 bg-red-500 rounded-full mr-2"></span>
                            <span class="inline-block w-3 h-3 bg-yellow-500 rounded-full mr-2"></span>
                            <span class="inline-block w-3 h-3 bg-green-500 rounded-full mr-2"></span>
                            <span class="text-sm ml-2">Terminal</span>
                        </div>
                        <div class="mt-2">
                            <p class="text-green-400"># 搜索Solr镜像</p>
                            <p class="mb-2">docker search solr</p>
                            
                            <p class="text-green-400"># 拉取Solr镜像</p>
                            <p class="mb-2">docker pull solr</p>
                            
                            <p class="text-green-400"># 创建并运行Solr容器</p>
                            <p>docker run -d --name mysolr -p 8983:8983 solr</p>
                            <p class="text-gray-400 text-sm mt-1"># -d: 后台运行</p>
                            <p class="text-gray-400 text-sm"># --name: 容器别名</p>
                            <p class="text-gray-400 text-sm"># -p: 端口映射 (主机端口:容器端口)</p>
                        </div>
                    </div>
                    
                    <div class="note p-4 rounded-lg">
                        <div class="flex items-start">
                            <i class="fas fa-info-circle text-yellow-600 mr-2 mt-1"></i>
                            <div>
                                <p class="font-medium">访问Solr管理界面</p>
                                <p>容器启动后，可以通过浏览器访问: http://服务器IP:8983</p>
                            </div>
                        </div>
                    </div>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">3.2 配置Solr Core</h3>
                
                <div class="code-block p-4 rounded-lg text-gray-100 mb-6">
                    <div class="flex items-center mb-2">
                        <span class="inline-block w-3 h-3 bg-red-500 rounded-full mr-2"></span>
                        <span class="inline-block w-3 h-3 bg-yellow-500 rounded-full mr-2"></span>
                        <span class="inline-block w-3 h-3 bg-green-500 rounded-full mr-2"></span>
                        <span class="text-sm ml-2">Terminal</span>
                    </div>
                    <div class="mt-2">
                        <p class="text-green-400"># 创建Solr Core</p>
                        <p>docker exec -it mysolr bin/solr create_core -c mycollection</p>
                        <p class="text-gray-400 text-sm mt-1"># 给mysolr发送指令，执行bin/solr命令，创建mycollection的solrcore</p>
                    </div>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">3.3 配置中文分词器</h3>
                
                <div class="space-y-6">
                    <div class="code-block p-4 rounded-lg text-gray-100">
                        <div class="flex items-center mb-2">
                            <span class="inline-block w-3 h-3 bg-red-500 rounded-full mr-2"></span>
                            <span class="inline-block w-3 h-3 bg-yellow-500 rounded-full mr-2"></span>
                            <span class="inline-block w-3 h-3 bg-green-500 rounded-full mr-2"></span>
                            <span class="text-sm ml-2">Terminal</span>
                        </div>
                        <div class="mt-2">
                            <p class="text-green-400"># 进入容器</p>
                            <p class="mb-2">docker exec -it mysolr /bin/bash</p>
                            
                            <p class="text-green-400"># 中文分词器路径</p>
                            <p>/opt/solr/contrib/analysis-extras/lucene-libs/</p>
                            <p class="text-gray-400 text-sm mt-1">包含了 lucene-analyzers-smartcn-8.1.1.jar</p>
                        </div>
                    </div>
                    
                    <div class="note p-4 rounded-lg">
                        <div class="flex items-start">
                            <i class="fas fa-info-circle text-yellow-600 mr-2 mt-1"></i>
                            <div>
                                <p class="font-medium">配置文件位置</p>
                                <p>宿主机映射路径: /var/lib/docker/volumes/.../_data/data/mycollection/conf</p>
                                <p>需要修改 solrconfig.xml 和 managed-schema 文件</p>
                            </div>
                        </div>
                    </div>
                    
                    <h4 class="text-xl font-semibold mt-6 mb-3 text-gray-700">managed-schema 配置</h4>
                    <div class="code-block p-4 rounded-lg text-gray-100">
                        <pre>&lt;fieldType name="mytext_id" class="solr.TextField"&gt;
    &lt;analyzer type="index"&gt;
        &lt;tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/&gt;
    &lt;/analyzer&gt;
    &lt;analyzer type="query"&gt;
        &lt;tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/&gt;
    &lt;/analyzer&gt;
&lt;/fieldType&gt;</pre>
                    </div>
                    
                    <div class="warning p-4 rounded-lg mt-4">
                        <div class="flex items-start">
                            <i class="fas fa-exclamation-triangle text-red-500 mr-2 mt-1"></i>
                            <div>
                                <p class="font-medium">重要提示</p>
                                <p>配置完成后需要重启Solr容器: docker restart mysolr</p>
                                <p class="mt-1"><span class="font-semibold">注意:</span> 启动mysolr时必须开启防火墙，否则启动会失败</p>
                            </div>
                        </div>
                    </div>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">3.4 配置字段域</h3>
                
                <div class="code-block p-4 rounded-lg text-gray-100">
                    <pre>&lt;!-- 创建自定义的字段 --&gt;
&lt;field name="gname" type="mytext_id" indexed="true" stored="true"/&gt;
&lt;field name="ginfo" type="mytext_id" indexed="true" stored="true"/&gt;
&lt;field name="gimage" type="string" indexed="false" stored="true"/&gt;
&lt;field name="gprice" type="pfloat" indexed="false" stored="true"/&gt;
&lt;field name="gsave" type="pint" indexed="false" stored="true"/&gt;</pre>
                    <div class="text-gray-400 text-sm mt-2">
                        <p><span class="font-medium">indexed:</span> 是否添加到索引(只有添加到索引才能搜索)</p>
                        <p><span class="font-medium">stored:</span> 是否存储到索引库</p>
                        <p><span class="font-medium">name:</span> 存储到索引库的字段名称</p>
                        <p><span class="font-medium">type:</span> 使用的分词器类型</p>
                    </div>
                </div>
            </div>
        </section>

        <!-- SpringBoot Integration Section -->
        <section id="springboot" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-blue-600 w-12 h-12 rounded-full flex items-center justify-center text-white mr-4">
                    <i class="fas fa-leaf text-xl"></i>
                </div>
                <h2 class="text-3xl font-bold text-gray-800">4. SpringBoot 整合 Solr</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-6">
                <h3 class="text-2xl font-semibold mb-6 text-gray-800">4.1 添加依赖</h3>
                
                <div class="code-block p-4 rounded-lg text-gray-100 mb-8">
                    <pre>&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-data-solr&lt;/artifactId&gt;
    &lt;version&gt;2.1.7.RELEASE&lt;/version&gt;
&lt;/dependency&gt;</pre>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">4.2 配置 application.properties</h3>
                
                <div class="code-block p-4 rounded-lg text-gray-100 mb-8">
                    <pre>dubbo.application.name=search_server
dubbo.registry.address=zookeeper://192.168.189.137:2181
dubbo.protocol.port=-1
dubbo.registry.register=true

spring.data.solr.host=http://192.168.189.137:8983/solr/mycollection</pre>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">4.3 索引库 CRUD 操作</h3>
                
                <div class="space-y-6">
                    <div class="bg-gray-50 p-5 rounded-lg">
                        <h4 class="text-xl font-semibold mb-3 text-gray-700">添加/更新文档</h4>
                        <div class="code-block p-4 rounded-lg text-gray-100">
                            <pre>@Autowired
private SolrClient solrClient;

@Test
public void add() throws IOException, SolrServerException {
    SolrInputDocument document = new SolrInputDocument();
    
    document.addField("gname","华为荣耀20");
    document.addField("ginfo","4800万超广角AI四摄...");
    document.setField("gimage","a1.png");
    document.setField("gprice",1399.00);
    document.setField("gsave",100);
    document.setField("id",1);
    
    solrClient.add(document); // 如果id存在就更新
    solrClient.commit();
}</pre>
                        </div>
                    </div>
                    
                    <div class="bg-gray-50 p-5 rounded-lg">
                        <h4 class="text-xl font-semibold mb-3 text-gray-700">删除文档</h4>
                        <div class="code-block p-4 rounded-lg text-gray-100">
                            <pre>@Test
public void delete() throws IOException, SolrServerException {
    solrClient.deleteById("a7b2ef4b-2b25-4eb5-b8dd-b6a255d8ca22");
    solrClient.commit();
}</pre>
                        </div>
                    </div>
                    
                    <div class="bg-gray-50 p-5 rounded-lg">
                        <h4 class="text-xl font-semibold mb-3 text-gray-700">查询文档</h4>
                        <div class="code-block p-4 rounded-lg text-gray-100">
                            <pre>@Test
public void query() throws IOException, SolrServerException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("gname:华为 || ginfo:手机");
    
    QueryResponse queryResponse = solrClient.query(solrQuery);
    SolrDocumentList results = queryResponse.getResults();
    
    for(SolrDocument sd:results){
        System.out.println(sd.get("gname"));
        System.out.println(sd.get("ginfo"));
    }
}</pre>
                        </div>
                    </div>
                </div>
                
                <h3 class="text-2xl font-semibold mt-10 mb-6 text-gray-800">4.4 关键字高亮</h3>
                
                <div class="space-y-6">
                    <div class="code-block p-4 rounded-lg text-gray-100">
                        <pre>public List&lt;Goods&gt; selectByKey(String keyword) {
    SolrQuery solrQuery;
    List&lt;Goods&gt; goodsList = new ArrayList&lt;&gt;();
    
    if(!StringUtils.isEmpty(keyword)){
        String queryStr = "gname:%s || ginfo:%s";
        solrQuery = new SolrQuery(String.format(queryStr,keyword,keyword));
    } else {
        solrQuery = new SolrQuery("*:*");
    }

    // 设置高亮
    solrQuery.setHighlight(true);
    solrQuery.setHighlightSimplePre("&lt;font color='red'&gt;");
    solrQuery.setHighlightSimplePost("&lt;/font&gt;");
    solrQuery.addHighlightField("ginfo");

    try {
        QueryResponse queryResponse = solrClient.query(solrQuery);
        SolrDocumentList results = queryResponse.getResults();
        Map&lt;String, Map&lt;String, List&lt;String&gt;&gt;&gt; highlighting = queryResponse.getHighlighting();

        for(SolrDocument sd:results){
            Goods goods = new Goods();
            String id = sd.getFieldValue("id").toString();
            String gname = sd.getFieldValue("gname").toString();
            String ginfo = sd.getFieldValue("ginfo").toString();
            
            goods.setGname(gname);
            goods.setGinfo(ginfo);

            if(highlighting.containsKey(id)){
                Map&lt;String, List&lt;String&gt;&gt; listMap = highlighting.get(id);
                if(listMap.containsKey("ginfo")){
                    String hightLiGinfo = listMap.get("ginfo").get(0);
                    goods.setGinfo(hightLiGinfo);
                }
            }
            goodsList.add(goods);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return goodsList;
}</pre>
                    </div>
                    
                    <div class="note p-4 rounded-lg">
                        <div class="flex items-start">
                            <i class="fas fa-info-circle text-yellow-600 mr-2 mt-1"></i>
                            <div>
                                <p class="font-medium">页面显示高亮</p>
                                <p>在Thymeleaf模板中使用utext属性来渲染HTML:</p>
                                <p class="code-block bg-gray-800 text-gray-100 p-2 rounded mt-2 text-sm">&lt;p class="miaoshu" th:utext="${goods.ginfo}"&gt;&lt;/p&gt;</p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
        
        <!-- Summary Section -->
        <section class="mb-16">
            <div class="bg-blue-50 rounded-xl p-8 text-center">
                <h2 class="text-2xl md:text-3xl font-bold text-blue-800 mb-4">Solr 核心要点总结</h2>
                <div class="grid md:grid-cols-3 gap-6 mt-8">
                    <div class="bg-white p-6 rounded-lg shadow-sm">
                        <div class="text-blue-600 mb-3">
                            <i class="fas fa-project-diagram text-3xl"></i>
                        </div>
                        <h3 class="text-xl font-semibold mb-2">倒排索引</h3>
                        <p class="text-gray-600">Solr基于Lucene的倒排索引技术，将文档中的词映射到文档ID，极大提高搜索效率。</p>
                    </div>
                    <div class="bg-white p-6 rounded-lg shadow-sm">
                        <div class="text-blue-600 mb-3">
                            <i class="fas fa-box-open text-3xl"></i>
                        </div>
                        <h3 class="text-xl font-semibold mb-2">Docker部署</h3>
                        <p class="text-gray-600">使用Docker可以快速部署Solr环境，便于开发测试和生产环境迁移。</p>
                    </div>
                    <div class="bg-white p-6 rounded-lg shadow-sm">
                        <div class="text-blue-600 mb-3">
                            <i class="fas fa-plug text-3xl"></i>
                        </div>
                        <h3 class="text-xl font-semibold mb-2">Spring集成</h3>
                        <p class="text-gray-600">Spring Data Solr提供了简便的API，可以轻松实现CRUD、查询和高亮等核心功能。</p>
                    </div>
                </div>
            </div>
        </section>
    </div>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-300 py-8">
        <div class="container mx-auto max-w-5xl px-4 text-center">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-4 md:mb-0">
                    <h3 class="text-xl font-semibold text-white mb-2">技术小馆</h3>
                    <p>探索技术世界的无限可能</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="text-blue-400 hover:text-blue-300 transition duration-300">
                        <i class="fas fa-external-link-alt mr-1"></i> www.yuque.com/jtostring
                    </a>
                </div>
            </div>
            <div class="mt-6 pt-6 border-t border-gray-800 text-sm">
                <p>© 2023 技术小馆. All rights reserved.</p>
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
</body>
</html>
```